﻿using Core.Info;
using Core.Utility;
using Core.Utility.Crypto;
using Core.Utility.Crypto.Core;
using Core.Utility.Helper;
using Core.ValidateRules.Lib;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Reflection;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;

/*
 * @生成日期 : 2022-11-10
 * @生成说明 : 应用配置
 */
namespace Dto.Core.Config
{
    /// <summary>
    /// 接口配置参数 , 表： api_config_param
    /// </summary>
    public class ApiConfigDto : CommonBaseDto
    {
        #region 属性

        // 忽略生成字段 - id - 自增主键;数据库的自增主键

        // 忽略生成字段 - sid - 雪花Id，所有的外键均使用该字段

        #region api键;通过该字段实例化到具体的类
        /// <summary>
        /// api键;通过该字段实例化到具体的类
        /// </summary>
        private string? apiKey;

        /// <summary>
        /// api键;通过该字段实例化到具体的类
        /// </summary>
        [JsonProperty("api_key")]
        [Display(Name = "api键")]
        public string? ApiKey
        {
            get { return apiKey; }
            set
            {
                apiKey = value;
                OnPropertyChanged();
            }
        }
        #endregion api键;通过该字段实例化到具体的类

        #region 配置名称
        /// <summary>
        /// 配置名称
        /// </summary>
        private string? apiName;

        /// <summary>
        /// 配置名称
        /// </summary>
        [JsonProperty("api_name")]
        [Display(Name = "配置名称")]
        public string? ApiName
        {
            get { return apiName; }
            set
            {
                apiName = value;
                OnPropertyChanged();
            }
        }
        #endregion 配置名称

        #region 配置说明
        /// <summary>
        /// 配置说明
        /// </summary>
        private string? apiDescription;

        /// <summary>
        /// 配置说明
        /// </summary>
        [JsonProperty("api_description")]
        [Display(Name = "配置说明")]
        public string? ApiDescription
        {
            get { return apiDescription; }
            set
            {
                apiDescription = value;
                OnPropertyChanged();
            }
        }
        #endregion 配置说明

        // 忽略生成字段 - sort_number - 排序号

        #region 是否启用;0:否;1:是
        /// <summary>
        /// 是否启用;0:否;1:是
        /// </summary>
        private sbyte? isEnabled;

        /// <summary>
        /// 是否启用;0:否;1:是
        /// </summary>
        [JsonProperty("is_enabled")]
        [Display(Name = "是否启用")]
        public sbyte? IsEnabled
        {
            get { return isEnabled; }
            set
            {
                isEnabled = value;
                OnPropertyChanged();
            }
        }
        #endregion 是否启用;0:否;1:是

        // 忽略生成字段 - remark - 备注

        // 忽略生成字段 - created_by - 创建人

        // 忽略生成字段 - created_by_name - 创建人名称;创建人名称冗余存储

        // 忽略生成字段 - created_time - 创建时间

        // 忽略生成字段 - updated_by - 更新人

        // 忽略生成字段 - updated_by_name - 更新人名称;修改人名称冗余存储

        // 忽略生成字段 - updated_time - 更新时间

        // 忽略生成字段 - revision - 乐观锁;用于数据并发操作时使用,数据每次更新后，改变此值

        // 忽略生成字段 - is_deleted - 删除标识;用于标识数据是否逻辑删除(软删) 0:否;1:是
        #endregion 属性
    }
}